SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE Procedure [dbo].[SP_TTRENP_ANUL_D01]  
/*-------------------------------------------------------*/  
/*---Empresa              : OFISIS S.A.                --*/  
/*---Cliente              : OFISIS                 --*/  
/*---Sistema              : Tesoreria                  --*/  
/*---M÷dulo               : Empresa                    --*/  
/*---Programa             : Anulaci¸n Renovaci¸n Letras--*/  
/*---Script               : ttrenp_anul.sql            --*/  
/*---Nombre SP            : SP_TCRENP_ANUL_D01         --*/  
/*---Desarrollado por     : Javier Flores A.           --*/  
/*---Fecha Creaci÷n       : 20/08/1999                 --*/  
/*---Base Datos           : Microsoft Sql Server       --*/  
/*---Versi÷n              : 7.0                        --*/  
/*---Invoca a SP          :                            --*/  
/*-------------------------------------------------------*/  
  
/*-------------------------------------------------------*/  
/*---Modificado 1 por     : Maribel Julca Rodriguez    --*/  
/*---Fecha Modificaci©n   : 21/04/2005                 --*/   
/*---Detalle Modificaci©n : ingreso de los campos CO_USUA_CREA, CO_USUA_MODI  --*/  
/*-------------------------------------------------------*/  
  
/*-------------------------------------------------------*/  
/*---Comentarios                                       --*/  
/*---                                                  --*/  
/*---                                                  --*/  
/*-------------------------------------------------------*/  
  
/*-------------------------------------------------------*/  
/*---Drop Proc SP_TTRENP_ANUL_D01                      --*/  
/*---Grant all on SP_TTRENP_ANUL_D01 to public         --*/   
/*---SP_TTRENP_ANUL_D01                                --*/  
/*-------------------------------------------------------*/  
 @ISCO_EMPR      TD_VC_002,   
 @ISCO_USUA_MODI TD_VC_008_USUA,  
 @ISCO_PROV      TD_VC_020,  
 @ISNU_RENO      TD_VC_008,  
 @ISCO_TIPO_OPER TD_VC_003,  
 @IDFE_ANUL      TD_DT_001,  
 @ISCO_UNID_CONC TD_VC_003,  
 @IDFE_RENO      TD_DT_001
As
Declare @CSCO_TIPO_DOCU   TD_VC_003,   
         @CSNU_DOCU_PROV   TD_VC_020,   
         @CSNU_LETR_PROV   TD_VC_020,  
         @OSTI_DOCU        TD_VC_003,  
  @CNIM_RENO_MDOC   TD_NU_016_004,  
  @CSCO_ESTA_ORIG   TD_VC_003,  
         @VSCO_ESTA_LETR   TD_VC_003,  
         @VNNU_SECU        TD_IN_001,  
         @VSCO_TIPO_EGAN   TD_VC_003,     
         @VSST_GEAS_ANUL   TD_VC_001,  
         @VSCO_TIPO_OPE1   TD_VC_003  
  
Exec SP_TTDOCU_CNTB_Q01 6, @OSTI_DOCU OUTPUT  
  
 Begin Tran SP_TCRENO_PROV_I01  
     
    Declare CU_TCRENO_PROV_I01_1 cursor  
    For  
    Select  CO_TIPO_DOCU, NU_DOCU_PROV, NU_LETR_PROV, IM_RENO_MDOC, CO_ESTA_ORIG  
    From    TDRENO_PROV  
    Where   CO_EMPR = @ISCO_EMPR  
         And CO_PROV = @ISCO_PROV  
     And CO_UNID_CONC = @ISCO_UNID_CONC   
         And NU_RENO = @ISNU_RENO  
         And FE_RENO = @IDFE_RENO  
   
    Open CU_TCRENO_PROV_I01_1  
    Fetch CU_TCRENO_PROV_I01_1 Into @CSCO_TIPO_DOCU, @CSNU_DOCU_PROV, @CSNU_LETR_PROV,   
 @CNIM_RENO_MDOC, @CSCO_ESTA_ORIG  
     
    While (@@FETCH_STATUS = 0)  
      Begin  
        If (@@FETCH_STATUS < 0)  
           Begin  
      RAISERROR 20001 'FIN DE ARCHIVO'  
             Close CU_TCRENO_PROV_I01_1  
      Deallocate CU_TCRENO_PROV_I01_1  
             Rollback tran  
      Return  
           End  
  
        If @CSNU_LETR_PROV is not Null  
           Begin  
  
             Select @VSCO_ESTA_LETR = CO_ESTA_DOCU   
             From   TMLETR_PROV  
             Where  CO_EMPR = @ISCO_EMPR  
             And    CO_PROV = @ISCO_PROV  
             And    NU_LETR_PROV = @CSNU_LETR_PROV  
  
             Update  TMLETR_PROV   
      Set     CO_ESTA_DOCU = 'ANU',   
       CO_USUA_MODI = @ISCO_USUA_MODI,  
                     FE_USUA_MODI = GETDATE()  
             Where   CO_EMPR = @ISCO_EMPR  
                   And CO_PROV = @ISCO_PROV  
                   And NU_LETR_PROV = @CSNU_LETR_PROV  
  
             If @@error <> 0  
                Begin                     Close CU_TCRENO_PROV_I01_1  
                  Deallocate CU_TCRENO_PROV_I01_1  
                  Rollback tran  
            Return    
                End  
  
             Select @VNNU_SECU = ISNULL(Max(NU_SECU),0) + 1  
             From   TDKARD_DOCP  
             Where  CO_EMPR = @ISCO_EMPR   
  
             Insert Into TDKARD_DOCP (CO_EMPR, NU_SECU,CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, CO_ESTA_ACTU,  
                                    CO_ESTA_DOCU, CO_USUA_CREA,FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI)   
             Values ( @ISCO_EMPR, @VNNU_SECU , @OSTI_DOCU, @CSNU_LETR_PROV, @ISCO_PROV,  
               'ANU', @VSCO_ESTA_LETR, @ISCO_USUA_MODI,GETDATE(), @ISCO_USUA_MODI, GETDATE())  
  
             If @@error <> 0  
                Begin   
                  Close CU_TCRENO_PROV_I01_1  
                  Deallocate CU_TCRENO_PROV_I01_1  
                  Rollback tran  
                  Return    
                End  
           End           
        Else  
          Begin  
  
            If @CSCO_TIPO_DOCU != @OSTI_DOCU  
               Begin  
                 Update TMDOCU_PROV   
   Set    CO_ESTA_DOCU = @CSCO_ESTA_ORIG,   
   NU_RENO = NULL,  
                 IM_PAGA = IM_PAGA - ISNULL(@CNIM_RENO_MDOC,0),   
   CO_USUA_MODI = @ISCO_USUA_MODI,   
   FE_USUA_MODI = GETDATE()  
                 Where  CO_EMPR = @ISCO_EMPR  
                  And CO_PROV = @ISCO_PROV  
                  And CO_TIPO_DOCU = @CSCO_TIPO_DOCU  
              And NU_DOCU_PROV = @CSNU_DOCU_PROV  
  
                 If @@error <> 0  
                    Begin                          
        Close CU_TCRENO_PROV_I01_1  
                      Deallocate CU_TCRENO_PROV_I01_1  
                      Rollback tran  
                      Return    
                    End  
              End  
           Else  
             Begin  
  
         Select @VSCO_ESTA_LETR = CO_ESTA_DOCU   
                From   TMLETR_PROV  
                Where  CO_EMPR = @ISCO_EMPR  
                And    CO_PROV = @ISCO_PROV  
                And    NU_LETR_PROV = @CSNU_DOCU_PROV  
  
                Update  TMLETR_PROV   
  Set  CO_ESTA_DOCU = @CSCO_ESTA_ORIG,   
    NU_RENO = NULL,  
   IM_PAGA = IM_PAGA - ISNULL(@CNIM_RENO_MDOC,0),  
                 CO_USUA_MODI = @ISCO_USUA_MODI,   
   FE_USUA_MODI = GETDATE()  
               Where   CO_EMPR = @ISCO_EMPR  
                 And CO_PROV = @ISCO_PROV  
                 And NU_LETR_PROV = @CSNU_DOCU_PROV  
  
               If @@error <> 0  
                  Begin   
                    Close CU_TCRENO_PROV_I01_1  
                    Deallocate CU_TCRENO_PROV_I01_1  
                    Rollback tran  
                    Return    
                  End  
  
               Select @VNNU_SECU = ISNULL(Max(NU_SECU),0) + 1  
               From   TDKARD_DOCP  
               Where  CO_EMPR = @ISCO_EMPR  
  
               Insert Into TDKARD_DOCP (CO_EMPR, NU_SECU,CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, CO_ESTA_ACTU,  
                               CO_ESTA_DOCU, CO_USUA_CREA,FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI)  
               Values ( @ISCO_EMPR, @VNNU_SECU , @OSTI_DOCU, @CSNU_DOCU_PROV, @ISCO_PROV,  
                 @CSCO_ESTA_ORIG,  @VSCO_ESTA_LETR, @ISCO_USUA_MODI,GETDATE(), @ISCO_USUA_MODI, GETDATE())    
   
               If @@error <> 0  
                  Begin  
                    Rollback tran  
                    Return  
                  End      
  
            End  
         End  
  
       Fetch CU_TCRENO_PROV_I01_1 into @CSCO_TIPO_DOCU, @CSNU_DOCU_PROV,   
 @CSNU_LETR_PROV, @CNIM_RENO_MDOC, @CSCO_ESTA_ORIG  
      
     End  
  
     Close CU_TCRENO_PROV_I01_1  
     Deallocate CU_TCRENO_PROV_I01_1  
  
     SELECT @VSCO_TIPO_EGAN = CO_TIPO_OPEG, @VSST_GEAS_ANUL = ST_GEAS_ANUL  
     FROM   TMPARA_TESO   
     WHERE  CO_EMPR = @ISCO_EMPR  
  
     If @VSST_GEAS_ANUL = 'N'  
        Select @VSCO_TIPO_OPE1 = @VSCO_TIPO_EGAN  
     Else      
       Select @VSCO_TIPO_OPE1 = @ISCO_TIPO_OPER   
  
      Update  TCRENO_PROV   
 Set  TI_SITU = 'ANU',   
                CO_TIPO_OPER = @VSCO_TIPO_OPE1,  
  CO_USUA_MODI = @ISCO_USUA_MODI,   
             FE_USUA_MODI = GETDATE()  
      Where   CO_EMPR = @ISCO_EMPR  
       And CO_PROV = @ISCO_PROV  
      And CO_UNID_CONC = @ISCO_UNID_CONC    
    And NU_RENO = @ISNU_RENO  
          And FE_RENO = @IDFE_RENO  
  
     If @@error <> 0  
        Begin   
          Rollback tran  
          Return    
        End  
  
     Insert Into TTRENP_ANUL (CO_EMPR, CO_UNID_CONC, CO_PROV, NU_RENO, FE_RENO, CO_TIPO_OPER, FE_ANUL, ST_CONT, CO_USUA_CREA,FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI)  
     Values (@ISCO_EMPR,  @ISCO_UNID_CONC, @ISCO_PROV, @ISNU_RENO, @IDFE_RENO, @VSCO_TIPO_OPE1,  @IDFE_ANUL, 'N', @ISCO_USUA_MODI,GETDATE(), @ISCO_USUA_MODI, GETDATE())  
  
     If @@error <> 0  
        Begin  
          Rollback tran  
          Return  
        End  
  
  commit tran  
   
/*------------------------ Fin ------------------------------*/


GO
